After manufacture, a data processing device is typically tested to ensure the device behavior matches a specification. For a typical test, a test pattern is applied to an input of the data processing device and a resultant output pattern compared to an expected output pattern. The test pattern typically tests only a portion of the possible states of the data processing device. Accordingly, the data processing device is tested with a variety of different test patterns in order to increase the number of possible states tested. However, because of the complexity of modern data processing devices, it can be difficult to ensure that all possible states, or even likely states, of a data processing device have been tested by a given set of test patterns. Further, changes in the data processing device (such as a change resulting from an alteration in the device design) can render previous test patterns obsolete, requiring generation of new test patterns.